/**
 * 建议尽量全字段或者区域多字段进行匹配, 避免误触
 */
// Import("ocr.js")
// Import("utils.js")
Import("ggUtils_畅听音乐.js")
// Import("ggUtils.js")


var APP_NAME_FQCTYYB = '番茄畅听音乐版'
var PACK_NAME_FQCTYYB = 'com.xs.fm.lite'
var MAIN_PAGE_FLAG_FQCTYYB = '首页'
var ENTER_CENTER_PAGE_FLAG_FQCTYYB = '领现金'
var CENTER_PAGE_FLAG_FQCTYYB = '金币收益'
var CTYY_MAX_JB = 330000

// SystemPrint.log(hui.getCheck('ct_sx').getValue())
if(hui.getCheck('ctyy_sx').getValue() == '上限450000'){
    CTYY_MAX_JB = 450000
}
if(hui.getCheck('ctyy_sx').getValue() == '无上限直到单广低于5000'){
    CTYY_MAX_JB = 1000000
}

function skip_comom_FQCTYYB() {
    agentOrHidClick(ocrText('取消', '以后再说', '放弃奖励', '暂不开启', '不开启'))
}

function skip_主界面的弹窗_FQCTYYB() {
    //找图返回目标数组
    var detectsdown = opencv.findImagesEx('图色362043.cv');
    if (detectsdown != null) {
        agentOrHidClick(detectsdown[0])
    }

    var detectsclose = opencv.findImagesEx('图色504533.cv');
    if (detectsclose != null) {
        agentOrHidClick(detectsclose[0])
    }

    var detectsclose2 = opencv.findImagesEx('图色195479.cv');
    if (detectsclose2 != null) {
        agentOrHidClick(detectsclose2[0])
    }

    if (ocrText('一键关联抖音', '关联其他抖音账号', '解锁更多功能', '功能体验')) {
        //找图返回目标数组
        var detectsx = opencv.findImagesEx('图色903853.cv');
        if (detectsx != null) {
            agentOrHidClick(detectsx[0])
        }
    }

    skip_comom_FQCTYYB()
}

function skip_任务中心的弹窗_FQCTYYB() {
    log('关闭任务中心弹窗开始')
    skip_comom_FQCTYYB()

    agentOrHidClick(ocrText('开心收下', '不开启', '取消', '拒绝', '关闭', '退出', '我知道'))

    var detectsclose = opencv.findImagesEx('图色504533.cv');
    if (detectsclose != null) {
        agentOrHidClick(detectsclose[0])
    }


    if (ocrText('一键关联抖音', '关联其他抖音账号', '解锁更多功能', '功能体验')) {
        //找图返回目标数组
        var detectsx = opencv.findImagesEx('图色903853.cv');
        if (detectsx != null) {
            agentOrHidClick(detectsx[0])

            enter_任务中心_FQCTYYB(true)
        }
    }
    // var detects返回 = opencv.findImagesEx('图色961628.cv');
    // if (detects返回 != null) {
    //     agentOrHidClick(detects返回[0])

    //     enter_任务中心_FQCTYYB(true)
    // }
    log('关闭任务中心弹窗结束')
}

function back2center_FQCTYYB() {
    if (!backUntilFindView(() => ocrText('福利中心', '福利商城', '日常福利', '时长赚', '每日听'))) {
        // enter_任务中心_FQCTYYB(true)
    }
}

// 启动任务
function start_app_FQCTYYB() {
    // app.closeApp(PACK_NAME_FQCTYYB)
    // sleep.millisecond(200)
    printinfoOld('start_app_FQCTYYB')

    if (!startApp(PACK_NAME_FQCTYYB)) {
        return false
    }

    // 跳过首页广告
    expectView(() => {
        return ocrText(MAIN_PAGE_FLAG_FQCTYYB, '听书', '我的', '领现金')
    }, (times) => {
        skip_主界面的弹窗_FQCTYYB()

        if (times > 3) {
            agentOrHidback()
            sleep.millisecond(500)
            // todo
        }
        sleep.millisecond(500)
    }, (findView) => {
        // agentOrHidClick(findView)
    }, null, 3)

    return true
}

// 进入任务中心
function enter_任务中心_FQCTYYB(iskip) {
    log('进入任务中心')
    printinfoOld('enter_任务中心_FQCTYYB()')

    if (iskip == undefined) iskip = false

    // 进入任务中心
    expectView(() => {
        var flag = ocrTextInRegion(0.5, 0.85, 1, 1, ENTER_CENTER_PAGE_FLAG_FQCTYYB)
        if (flag == null) {
            var detects = opencv.findImagesEx('图色782778.cv');
            if (detects != null) {
                flag = detects[0]
            } else {
                detects = opencv.findImagesEx('图色878916.cv');
                if (detects != null) {
                    flag = detects[0]
                }
            }
        }
        return flag
    }, (times) => {
        skip_主界面的弹窗_FQCTYYB()

        // if (times >= 3) {
        //     clickOffectY(0.9, 1, 20)
        //     sleep.millisecond(1000)
        //     // todo 未找到后 返回怎么做
        // }
        sleep.millisecond(500)
        SystemPrint.warn('未找到主界面期望标志位')
    }, (findView, stepTimes) => {
        if (stepTimes == 1) {
            skip_主界面的弹窗_FQCTYYB()
        }
        agentOrHidClick(findView)
    }, () => {
        // 失败后的方案 或者其它方案进入
        skip_主界面的弹窗_FQCTYYB()
        // sleep.second(2)
        clickOffectY(7 / 10, 1, 60)
    }, 3)


    if (!iskip) {
        // 期望标志位
        expectView(() => {
            return ocrText('福利中心', '去提现', '日常福利', '听音乐赚金币', '现金收益')
        }, (times) => {
            skip_任务中心的弹窗_FQCTYYB()

            if (times > 3) {
                agentOrHidback()
                sleep.millisecond(1000)
                // todo 未找到后 返回怎么做
            }
            sleep.millisecond(500)
            SystemPrint.warn('未找到任务界面期望标志位')
        }, (findView) => {
            // clickOffectY(7 / 10, 1, 60)
            // agentOrHidClick(findView)
        }, () => {
            clickOffectY(7 / 10, 1, 60)
        }, 3)
    }
}


function open_签到_FQCTYYB() {
    if (!isRunAppTask('task_ctyy', '签到')) {
        log('畅听音乐屏蔽签到')
        return
    }
    if (hasForverExcuteFuncInTime是否在一段时间内执行过('open_签到_FQCTYYB')) {
        log('近期签到出现活动繁忙3天后再试')
        return
    }
    printinfoOld('open_签到_FQCTYYB-------------------------------')
    if (hasExcuteFunc('open_签到_FQCTYYB') || getExcuteFuncTimes('open_签到_FQCTYYB') > 10) {
        agentOrHidClick(ocrText('立即签到'), 0, () => {
            if (ocrWaitForMoreTextMillisecond('活动繁忙', '稍后再试', '继续赚', '续赚钱', 4)) {
                setForverExcuteFuncInTime一段时间内不再执行('open_签到_FQCTYYB', 3 * 24 * 60 * 60)
            }
            skip_任务中心的弹窗_FQCTYYB()
        })
        return
    }


    if (getExcuteFuncTimes('open_签到_FQCTYYB') < 2) {
        log('弹窗签到')
        agentOrHidClick(ocrWaitForMoreTextMillisecond('立即签到', '从第', '天签到', 10), 0, () => {
            if (ocrWaitForMoreTextMillisecond('活动繁忙', '稍后再试', '继续赚', '续赚钱', 6)) {
                setForverExcuteFuncInTime一段时间内不再执行('open_签到_FQCTYYB', 3 * 24 * 60 * 60)
                skip_任务中心的弹窗_FQCTYYB()
                return
            }
            var flag视频 = ocrWaitForMoreTextMillisecondInRegion(0, 0.6, 1, 0.8, 6, '看视频再', '看视频再领', '看视频领', '看广告领', '看广告再')
            if (getDectNumber(flag视频) >= 2000) {
                watchGG_畅听音乐独享(flag视频)
            }

            if (!isRunAppTask('task_ctyy', '签到')) {
                setExcuteFunc('open_签到_FQCTYYB')
            }
        })

        var falg = ocrText('看视频签到')
        agentOrHidClick(falg, 3, () => {
            var spFLag = ocrText('看视频再', '看视频再领', '看视频领', '看广告领', '看广告再')
            if (spFLag) {
                if (getDectNumber(spFLag) >= 3000) {
                    watchGG_畅听音乐独享(spFLag)
                }
            } else {
                watchGG_畅听音乐独享(falg, true)
            }
        })
    }

    skip_任务中心的弹窗_FQCTYYB()

    log('滚动查找签到')
    moveUp2FindWidTxtMore((findView) => {
        agentOrHidClick(findView)

        if (ocrTextMoreInCenter('明日再来', '明天再来')) {
            log('明日再来/明天再来')
            sleep.second(2)
            setExcuteFunc('open_签到_FQCTYYB')
            skip_任务中心的弹窗_FQCTYYB()
            // close_弹窗()
            return
        }

        agentOrHidClick(ocrText('立即签到', '看视频签到', '从第', '天签到'))
        var flag视频 = ocrWaitForMoreTextMillisecondInRegion(0, 0.5, 1, 0.85, 6, '看视频再', '看视频再领', '看广告再', '看广告领')
        if ((getDectNumber(flag视频) >= 3000 || getDectNumber(flag视频) < 1)
            || (getDectNumber(flag视频) > 50)) {
            watchGG_畅听音乐独享(flag视频)
        }

    }, '明日签到', '连续签到', '今日签到', '去签到', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })


    log('滚动查找签到结束')
    // close_弹窗()
    addExcuteFuncTimes('open_签到_FQCTYYB')
}

function open_开宝箱_FQCTYYB() {
    printinfoOld('open_开宝箱_FQCTYYB-------------------------------')
    if (hasExcuteFunc('open_开宝箱_FQCTYYB')) {
        log('宝箱上限')
        return
    }
    if (!isRunAppTask('task_ctyy', '开宝箱')) {
        log('屏蔽开宝箱')
        return
    }
    if (hasExcuteFuncInTime是否在一段时间内执行过('open_开宝箱_FQCTYYB')) {
        return
    }

    log('开宝箱')
    skip_任务中心的弹窗_FQCTYYB()

    // move2Top(1)
    var spFlag = ocrWaitForText('开宝箱得金币')
    if (spFlag == null) {
        //找图返回目标数组
        var detects = opencv.findImagesEx('图色774459.cv');
        if (detects != null) {
            spFlag = detects[0]
        }
    }
    //   agentClickRightOffectRight(spFlag, 20)
    agentClickRightOffectRight(spFlag, 20, 0, () => {
        if (ocrWaitForMoreTextMillisecond('活动繁忙', '稍后再试', '继续赚', '续赚钱', 4)) {
            setExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCTYYB', 12 * 60 * 60)
            return
        }
        if (!ocrText('恭喜你获得', '宝箱奖励', '恭喜您', '您获得', '恭喜', '获得奖励')) {
            watchGG_畅听音乐独享(spFlag, true, 1)
        }
        // ocrTextTrue('看视频再')
        var flag视频 = ocrWaitForText('看视频再', '看视频再领', '看视频领', '看广告领', '看广告再')
        if ((getDectNumber(flag视频) >= 2000 || getDectNumber(flag视频) < 10)
            || (getDectNumber(flag视频) > 50)) {
            if (!hasExcuteFunc('skip_看视频_ctyy')) {
                watchGG_畅听音乐独享(flag视频)
            }

            if (getDectNumber(flag视频) >= 2000) {
                addExcuteFuncTimes('open_开宝箱_FQCTYYB_金币太低', 0)
            }
        } else {

            printinfoOld('open_开宝箱_FQCTYYB_金币太低')
            addExcuteFuncTimes('open_开宝箱_FQCTYYB_金币太低')
            if (ocrText('最多300')) {
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 1 * 60 * 60)
            }

            skip_任务中心的弹窗_FQCTYYB()
        }

        // ocrTextTrue('分')
        var sleep宝箱时间Dect = ocrWaitForMoreTextMillisecondInRegion(0, 0.6, 1, 1, 3, '5分', '9分', '15分', '18分', '19分', '分')
        var sleep宝箱时间 = getDectNumber(sleep宝箱时间Dect)
        if (sleep宝箱时间 > 30) {
            sleep宝箱时间 = 30
        }
        if (sleep宝箱时间 < 5) {
            sleep宝箱时间 = 5
        }
        setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', sleep宝箱时间 * 60 + 10)

        if (getExcuteFuncTimes('open_开宝箱_FQCTYYB_金币太低') > 3) {
            setExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCTYYB', 1 * 60 * 60)
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 30 * 60)
        }
        if (getExcuteFuncTimes('open_开宝箱_FQCTYYB_金币太低') > 5) {
            setExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCTYYB', 4 * 60 * 60)
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 2 * 60 * 60)
        }
    })

    addExcuteFuncTimes('open_开宝箱_FQCTYYB')
}


function watch_看广告_FQCTYYB() {
    printinfoOld('watch_看广告_FQCTYYB-------------------------------')
    if (!isRunAppTask('task_ctyy', '看视频')) {
        log('看视频被屏蔽')
        return
    }
    if (hasExcuteFunc('skip_看视频_ctyy')) {
        return
    }
    if (hasExcuteFunc('watch_看广告_FQCTYYB') || getExcuteFuncTimes('watch_看广告_FQCTYYB') > 50) {
        log('看广告已完成')
        if (getExcuteFuncTimes('open_开宝箱_FQCTYYB_金币太低') > 2) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 30 * 60)
        }
        return
    }

    log('看广告视频')
    skip_任务中心的弹窗_FQCTYYB()
    // ocrTextTrue('看视频赚金币')
    move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        if (getDectNumber(findView) == 5000
            || getDectNumber(findView) >= 2000
            || (getDectNumber(findView) > 10)
        ) {


            // ocrTextTrue('已完成10/10')
            if (getExcuteFuncTimes('watch_看广告_FQCTYYB') >= 10) {
                if (isInNearBy(findView, '已完成10/10', 150)) {
                    setExcuteFunc('watch_看广告_FQCTYYB')
                    return
                }
            }

            watchGG_畅听音乐独享(findView)
            addExcuteFuncTimes('watch_看广告_FQCTYYB')


        }

    }, '看视频赚金币', '本次得', '次看视频得', '本次看视频', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式', '如有疑问')
    })

    // ocrTextTrue('如有疑问')
}


function watch_收益日报_FQCTYYB() {

    if (!isRunAppTask('task_ctyy', '看视频')) {
        log('收益日报被屏蔽看视频')
        return
    }
    if (hasExcuteFunc('watch_收益日报_FQCTYYB') || getExcuteFuncTimes('watch_收益日报_FQCTYYB') > 5) {
        return
    }

    log('收益日报')
    skip_任务中心的弹窗_FQCTYYB()

    move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        if (isInNearBy(findView, '立即领取')) {
            agentOrHidClick(findView)
            if (ocrText('我知道了', '我知道')) {
                agentOrHidClick(ocrText('我知道了', '我知道'), 1, () => {
                    // setExcuteFunc('watch_收益日报_FQCTYYB')
                })
                return
            }

            var ksFlag = ocrText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频')
            if (getDectNumber(ksFlag) == 2000 || getDectNumber(ksFlag) >= 3000 ||
                (getDectNumber(ksFlag) > 50)) {
                if (!hasExcuteFunc('skip_看视频_ctyy')) {
                    watchGG_畅听音乐独享(ksFlag)
                }

            } else {

                setExcuteFunc('watch_收益日报_FQCTYYB')
            }
        } else {
            if (isInNearBy(findView, '已完成')) {
                setExcuteFunc('watch_收益日报_FQCTYYB')
            }
        }

        skip_任务中心的弹窗_FQCTYYB()

    }, '收益日报', '日报奖励', '每天收益', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
    addExcuteFuncTimes('watch_收益日报_FQCTYYB')
}

function watch_连续听歌赚钱_FQCTYYB() {
    if (!isRunAppTask('task_ctyy', '看视频')) {
        log('连续听歌赚钱被屏蔽看视频')
        return
    }
    if (hasExcuteFunc('watch_连续听歌赚钱_FQCTYYB') || getExcuteFuncTimes('watch_连续听歌赚钱_FQCTYYB') > 3) {
        return
    }


    log('连续听歌赚钱')
    skip_任务中心的弹窗_FQCTYYB()

    move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        if (isInNearBy(findView, '立即领取')) {
            agentOrHidClick(findView)

            var ksFlag = ocrWaitForText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频')
            if (getDectNumber(ksFlag) >= 2000 || (getDectNumber(ksFlag) > 50)) {
                if (!hasExcuteFunc('skip_看视频_ctyy')) {
                    watchGG_畅听音乐独享(ksFlag)
                }
            }
            skip_任务中心的弹窗_FQCTYYB()
        }

    }, '连续听歌', '连续7天', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
    addExcuteFuncTimes('watch_连续听歌赚钱_FQCTYYB')
}

function open_睡觉赚金币_FQCTYYB(isForce) {
    if (isForce == undefined) isForce = false
    if (!isForce && hasExcuteFunc('open_睡觉赚金币_FQCTYYB')) {
        return
    }
    if (!isForce && isBetweenTime(2, 19)) {
        return
    }

    if (!isForce && !isRunAppTask('task_ctyy', '睡觉')) {
        log('睡觉被屏蔽')
        return
    }

    log('睡觉赚金币')
    if (!isForce) {
        skip_任务中心的弹窗_FQCTYYB()
        move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    }

    moveUp2FindWidTxtMore((findView) => {
        agentOrHidClick(findView)

        agentOrHidClick(ocrWaitForText('我要睡了'))

        if (!ocrWaitForText('我睡醒了', '睡觉啦', '可领取', '已经睡')) {
            click(0.5, 0.91)
        }

        sleep.second(3)
        var flaglq = ocrWaitForText('可领取', 5, 2)
        var numlq = getMaxNumByNearBy(flaglq, 100, 200)
        if (numlq > 0) {
            agentOrHidClickOffectY(flaglq, 100)

            var kxsx = ocrWaitForText('开心收下')
            if (kxsx) {
                agentOrHidClick(kxsx)
                setExcuteFunc('open_睡觉赚金币_FQCTYYB')
                return
            }

            if (!hasExcuteFunc('skip_看视频_ctyy')) {
                var flagsp = ocrWaitForText('看视频再', '看广告再')
                var jb = getDectNumber(flagsp)
                log('检测到金币' + jb)
                sleep.second(1)
                if (jb >= 5000 || jb == 3000 || jb == 2000 || jb == 4000) {
                    watchGG_畅听音乐独享(flagsp, false, 1)
                } else {
                    skip_任务中心的弹窗_FQCTYYB()
                }

            } else {
                setExcuteFunc('open_睡觉赚金币_FQCTYYB')
            }
        }

        backUntilFindView(() => ocrText('日常福利', '金币收益', '每日挑战', '去提现', '吃饭补贴', '福利商城', '开宝箱'), 3)
        // var ksFlag = ocrWaitForText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频')
        // if (getDectNumber(ksFlag) >= 2000 || (isEnableSwitch('gg_force_ctyyb') && getDectNumber(ksFlag) >= 660)) {
        //     if (!hasExcuteFunc('skip_看视频_ctyy')) {
        //         watchGG_畅听音乐独享(ksFlag)
        //     }
        // }

    }, '睡觉赚', '醒来后', '觉赚金', '睡觉可以', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
    addExcuteFuncTimes('open_睡觉赚金币_FQCTYYB')
}

function open_睡觉循环领金币_FQCTYYB() {
    log('睡觉赚金币')

    while (true) {

        sleep.second(3)
        log('等待睡觉金币可领取')
        var flaglq = ocrWaitForText('可领取', 5, 2)
        var numlq = getMaxNumByNearBy(flaglq, 100, 200)
        if (numlq > 0) {
            agentOrHidClickOffectY(flaglq, 100)

            var kxsx = ocrWaitForText('开心收下')
            if (kxsx) {
                agentOrHidClick(kxsx)
                setExcuteFunc('open_睡觉赚金币_FQCTYYB')
                log('睡觉没有广告了!')
                break
            }

            var flagsp = ocrWaitForText('看视频再', '看广告再')
            var jb = getDectNumber(flagsp)
            log('检测到金币' + jb)
            sleep.second(1)
            if (jb >= 5000 || jb == 3000 || jb == 2000 || jb == 4000) {
                watchGG_畅听音乐独享(flagsp, false, 0)
            } else {
                log('睡觉广告金币不满!')
                addExcuteFuncTimes('open_睡觉循环领金币_FQCTYYB_low')
                if (getExcuteFuncTimes('open_睡觉循环领金币_FQCTYYB_low') > 1) {
                    log('睡觉广告金币多次不满!')
                    break
                }
            }
        }
    }

    sleep.second(300)
}


function watch_每日听歌赚钱_FQCTYYB() {
    if (!isRunAppTask('task_ctyy', '看视频')) {
        log('每日听歌赚钱被屏蔽看视频')
        return
    }
    if (hasExcuteFunc('watch_每日听歌赚钱_FQCTYYB') || getExcuteFuncTimes('watch_每日听歌赚钱_FQCTYYB') > 1) {
        return
    }


    log('每日听歌赚钱')
    skip_任务中心的弹窗_FQCTYYB()

    move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        if (isInNearBy(findView, '立即领取')) {
            agentOrHidClick(findView)

            var ksFlag = ocrWaitForText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频')
            if (getDectNumber(ksFlag) >= 2000 || (getDectNumber(ksFlag) > 50)) {
                if (!hasExcuteFunc('skip_看视频_ctyy')) {
                    watchGG_畅听音乐独享(ksFlag)
                }
            }
            skip_任务中心的弹窗_FQCTYYB()
        } else {
            // ocrTextTrue('明日再来')
            if (isInNearBy(findView, '明日再来', '已完成')) {
                setExcuteFunc('watch_每日听歌赚钱_FQCTYYB')
            }
        }

    }, '每日听歌赚钱', '今日听歌', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
    addExcuteFuncTimes('watch_每日听歌赚钱_FQCTYYB')
}

function open_听音乐额外存金币_FQCTYYB() {
    if (!isRunAppTask('task_ctyy', '看视频')) {
        log('额外存金币被屏蔽看视频')
        return
    }
    if (hasExcuteFunc('open_听音乐额外存金币_FQCTYYB') || getExcuteFuncTimes('open_听音乐额外存金币_FQCTYYB') > 6) {
        return
    }

    if (hasExcuteFuncInTime是否在一段时间内执行过('open_听音乐额外存金币_FQCTYYB')) {
        return
    }


    log('听音乐额外存金币')
    skip_任务中心的弹窗_FQCTYYB()

    // ocrTextTrue('去赚金币')
    move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        if (isInNearBy(findView, '立即领取', 250) && !isInNearBy(findView, '去赚金币', 250)) {
            setExcuteFuncInTime一段时间内不再执行('open_听音乐额外存金币_FQCTYYB', 3 * 60 * 60)

            //找图返回目标数组
            var detects小猪 = opencv.findImagesEx('图色431550.cv');
            if (detects小猪 != null) {
                agentOrHidClick(detects小猪[0])
            } else {
                agentOrHidClickAbsoultXOffectY(findView, screen.widthToPercent(1) - 200, -150)
            }
            if (!hasExcuteFunc('skip_看视频_ctyy')) {
                watchGG_畅听音乐独享(ksFlag, true)
            }

            skip_任务中心的弹窗_FQCTYYB()
        }

    }, '听音乐额外', '外存金币', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
    addExcuteFuncTimes('open_听音乐额外存金币_FQCTYYB')
}

function open_时长赚金币_FQCTYYB() {
    if (!isRunAppTask('task_ctyy', '看视频')) {
        log('时长赚金币被屏蔽看视频')
        return
    }
    if (hasExcuteFunc('open_时长赚金币_FQCTYYB') || getExcuteFuncTimes('open_时长赚金币_FQCTYYB') > 20) {
        return
    }


    log('时长赚金币')
    skip_任务中心的弹窗_FQCTYYB()

    move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        for (let i = 0; i < 3; i++) {
            if (isInNearBy(ocrWaitForText('时长赚金币'), '翻倍领取', '立即领取')) {
                agentOrHidClick(findView)
                addExcuteFuncTimes('open_时长赚金币_FQCTYYB')
                var ksFlag = ocrWaitForText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频')
                if (getDectNumber(ksFlag) >= 2000 || (getDectNumber(ksFlag) > 50)) {

                    if (!hasExcuteFunc('skip_看视频_ctyy')) {
                        watchGG_畅听音乐独享(ksFlag)
                    }
                    // sleep.second(1)
                }
                skip_任务中心的弹窗_FQCTYYB()
            } else {
                if (isInNearBy(findView, '今日任务已完成')) {
                    setExcuteFunc('open_时长赚金币_FQCTYYB')
                    break
                }
            }
        }

    }, '时长赚金币', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
}

// 进行浏览任务
function start_浏览任务_FQCTYYB() {
    if (!start_app_FQCTYYB()) {
        return
    }

    if (hasExcuteFunc('start_浏览任务_FQCTYYB')) {
        return
    }

    if (getExcuteFuncTimes('start_浏览任务_FQCTYYB') > 2) {
        return
    }

    log('进行畅听音乐浏览任务')
    skip_主界面的弹窗_FQCTYYB()

    agentOrHidClick(ocrWaitForText('关闭', '再看'))

    watchGG_简单模式(ocrWaitForMoreTextMillisecond('立即观看', '看视频免费', '看视频领'))

    setExcuteFunc('start_浏览任务_FQCTYYB')

    skip_主界面的弹窗_FQCTYYB()

    agentSwipBig()

    sleep.second(30 * 60)

    addExcuteFuncTimes('start_浏览任务_FQCTYYB')

    stopAllApp()
}

function open_金币红包雨_FQCTYYB() {
    if (hasExcuteFunc('skip_看视频_ctyy')) {
        return
    }
    if (hasExcuteFunc('open_金币红包雨_FQCTYYB')) {
        return
    }
    if (!isRunAppTask('task_ctyy', '红包雨')) {
        log('金币红包雨不执行')
        return
    }

    if (hasExcuteFuncInTime是否在一段时间内执行过('open_开宝箱_FQCTYYB')) {
        return
    }
    if (hasExcuteFuncInTime是否在一段时间内执行过('open_金币红包雨_FQCTYYB')) {
        return
    }

    log('金币红包雨')
    skip_任务中心的弹窗_FQCTYYB()

    move2Top(4, 300, '自动兑换', '现金收益')
    moveUp2FindWidTxtMore((findView) => {
        if (!ocrText('开启下一场', '稍后再领', '下一场') || ocrText('00:00:00')) {
            // watchGG_畅听音乐独享(findView)
            agentOrHidClick(findView, 5)
            addExcuteFuncTimes('open_金币红包雨_FQCTYYB')
            //找图返回目标数组
            for (var i = 0; i < 20; i++) {
                click(0.5, 0.5, 0)
                sleep.millisecond(500)
            }

            var flag = ocrWaitForText('看视频翻倍领取', '翻倍领取', 10)
            if (flag == null) {
                flag = ocrTextMoreInRegion(0, 0.6, 1, 1, '翻倍领取', '看视频翻')
            }
            if (flag == null) {
                flag = ocrTextMoreInRegion(0, 0.5, 1, 1, '翻倍领取', '看视频翻')
            }

            if (flag) {
                watchGG_畅听音乐独享(flag)
            } else {
                agentOrHidClick(ocrText('直接领取', '返回福利', '福利页'))
            }

            agentOrHidClick(ocrText('返回福利'))
            setExcuteFuncInTime一段时间内不再执行('open_金币红包雨_FQCTYYB', 20 * 60)
        }

    }, '金币红包雨', '一大波红包来', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })

    if (ocrText('你在红包雨中获得')) {
        watchGG_畅听音乐独享(ocrWaitForText('视频翻倍', '看视频翻'))
        agentOrHidClick(ocrText('直接领取'))
    }
}

function check_是否金币上限_again_ctyy() {
    log('开始检测宝箱/看视频是否金币上限')
    ocrWaitForText('再看视频广告', '开宝箱激励', '激励广告')

    var flag_开宝箱 = ocrText('开宝箱激励', '箱激励广告')
    var jbnum_开宝箱 = getMaxNumByNearByOffecXY(flag_开宝箱, -(screen.percentToWidth(0.4)), 20, screen.percentToWidth(1), 100)
    if (jbnum_开宝箱 == 10 || jbnum_开宝箱 == 20) {
        if (isInNearBy(flag_开宝箱, getDayOfMonth('-'))) {
            addExcuteFuncTimes('open_开宝箱_ctyy')
            if (getExcuteFuncTimes('open_开宝箱_ctyy') >= 1) {
                log('开宝箱上限不再开')
                setExcuteFunc('open_开宝箱_FQCTYYB')
            }
        }
    } else {
        log('宝箱视频正常')
        addExcuteFuncTimes('open_开宝箱_ctyy', 0)
    }


    var flag_再看视频 = ocrText('再看视频广告')
    var jbnum_再看视频 = getMaxNumByNearByOffecXY(flag_再看视频, -(screen.percentToWidth(0.4)), 20, screen.percentToWidth(1), 100)
    if (jbnum_再看视频 == 10 || jbnum_再看视频 == 20 || jbnum_再看视频 == 5 || jbnum_再看视频 == 6) {
        if (isInNearBy(flag_再看视频, getDayOfMonth('-'))) {
            log('再次看视频上限不再开')
            addExcuteFuncTimes('again_再次看视频_ctyy')
            if (getExcuteFuncTimes('again_再次看视频_ctyy') >= 1) {
                setExcuteFunc('again_再次看视频_ctyy')
                setExcuteFunc('open_开宝箱_FQCTYYB')
            }
        }
    } else {
        log('再看视频正常')
        addExcuteFuncTimes('again_再次看视频_ctyy', 0)
    }

    var flag_看视频 = ocrText('看视频赚')
    var jbnum_看视频 = getMaxNumByNearByOffecXY(flag_看视频, -(screen.percentToWidth(0.4)), 20, screen.percentToWidth(1), 100)
    if (jbnum_看视频 == 10 || jbnum_看视频 == 20) {
        if (isInNearBy(flag_看视频, getDayOfMonth('-'))) {
            log('所有看视频上限了?')
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 30 * 60)
            addExcuteFuncTimes('check_看视频赚上限_ctyy')
            if (getExcuteFuncTimes('check_看视频赚上限_ctyy') >= 2) {
                log('所有看视频上限不再开')
                setExcuteFunc('skip_看视频_ctyy')
                setExcuteFunc('open_开宝箱_FQCTYYB')
                addExcuteFuncTimes('check_是否金币上限_FQCTYY')
                addExcuteFuncTimes('skip_看视频_ctyy_times')

                if (getExcuteFuncTimes('check_是否金币上限_FQCTYY') > 2) {
                    setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 12 * 60 * 60)
                }
            }
        }
    } else {
        log('看视频正常')
        addExcuteFuncTimes('check_看视频赚上限_ctyy', 0)
    }
}

function check_是否金币上限_FQCTYY() {
    if (getExcuteFuncTimes('start_收集金币_FQCTYYB') < 4) {
        log('4次后检查是否金币上限')
        return
    }

    skip_任务中心的弹窗_FQCTYYB()

    move2Top(3, 300, '金币每天凌晨自动', '现金收益', '金币收益')

    //获取金币收益
    var totalGet = getMaxNumByNearByOffecXY(ocrWaitForText('金币收益'), 100, 0, screen.percentToWidth(0.5), 150)
    log('今日收益:' + totalGet)
    setConfig('ctyy_total', totalGet)
    if (totalGet > CTYY_MAX_JB && totalGet < 1000000) {
        log('畅听上限不在继续任务')
        setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 24 * 60 * 60)
    }

    log('检测是否金币上限')

    agentOrHidClick(ocrText('金币收益'))
    if (ocrWaitForText('我的收益', '收益记录')) {
        var jbflag = ocrText('金币收益')
        agentOrHidClick(jbflag, 0)
        agentClicLeftOffectLeft(jbflag, 50)


        check_是否金币上限_again_ctyy()
    }

    back2center_FQCTYYB()
}

function open_翻卡赢金币_FQCTYYB() {
    if (!isRunAppTask('task_ctyy', '翻卡')) {
        return
    }
    // if (hasExcuteFuncInTime是否在一段时间内执行过('open_翻卡赢金币_FQCTYYB')) {
    //     return
    // }

    if (hasExcuteFunc('open_翻卡赢金币_FQCTYYB')) {
        if (hasExcuteFunc('watch_看广告_FQCTYYB') || getExcuteFuncTimes('watch_看广告_FQCTYYB') > 30) {
            if (getExcuteFuncTimes('open_开宝箱_FQCTYYB_金币太低') > 2) {
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 1 * 60 * 60)
            }
        }
        return
    }

    if (getExcuteFuncTimes('open_翻卡赢金币_FQCTYYB_fail') > 3) {
        return
    }

    log('翻卡赢金币')
    skip_任务中心的弹窗_FQCTYYB()

    move2Top(3, 300, '自动兑换', '现金收益')
    // ocrTextTrue('翻卡赢')翻卡贏金币
    moveUpHigher2FindWidTxtMore((findView) => {
        setExcuteFuncInTime一段时间内不再执行('open_翻卡赢金币_FQCTYYB', 10 * 60)
        if (!ocrText('继续开启', '下一轮', '明日再来翻卡')) {
            // watchGG_畅听音乐独享(findView)
            // if(ocrText('看视频翻卡'))
            agentOrHidClick(findView, 5)
            addExcuteFuncTimes('open_翻卡赢金币_FQCTYYB')

            // ocrTextTrue('看视频继续翻十位')
            var flag = ocrWaitForText('个视频', '看视频继续翻十位', '继续翻十位', '看视频继续翻百位', '看视频继续翻千位', '继续翻千位')

            watchGG_简单模式(flag)
            skip_任务中心的弹窗_FQCTYYB()
            var flagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', 3)
            agentOrHidClickAbsoultX(flagbw, screen.percentToWidth(0.5))


            flag = ocrWaitForText('个视频', '看视频继续翻百位', '继续翻百位', '看视频继续翻千位', '继续翻千位')
            if (flag) {
                // 翻百位
                watchGG_简单模式(flag)
                skip_任务中心的弹窗_FQCTYYB()
                flagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', 3)
                agentOrHidClickAbsoultX(flagbw, screen.percentToWidth(0.5))
            }


            flag = ocrWaitForText('个视频', '看视频继续翻千位', '继续翻千位', '看视频继续翻', '位卡')
            if (flag) {
                // 翻前位
                // ocrTextTrue('看视频继续千位')
                watchGG_简单模式(flag)
                skip_任务中心的弹窗_FQCTYYB()
                flagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', 3)
                if (flagbw == null) {
                    agentSwipSmallDowner()
                    lagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', 3)
                }
                agentOrHidClickAbsoultX(flagbw, screen.percentToWidth(0.5))
            }

            var successFlag = ocrWaitForMoreTextMillisecond('开心收下')
            if (!successFlag) {
                watchGG_简单模式(ocrWaitForText('个视频', '看视频继续翻'))
                agentOrHidClickAbsoultX(ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡'), screen.percentToWidth(0.5))
                agentOrHidClick(ocrText('立即翻卡'))
                successFlag = ocrWaitForMoreTextMillisecond('开心收下')
            }

            agentOrHidClick(successFlag)

        } else {
            if (ocrText('明日再来翻卡', '明日再来')) {
                setExcuteFunc('open_翻卡赢金币_FQCTYYB')
            }
        }
        addExcuteFuncTimes('open_翻卡赢金币_FQCTYYB_fail', 0)

    }, '翻卡赢金币', '点击翻卡', () => {
        var fialflag = ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
        if (fialflag) {
            addExcuteFuncTimes('open_翻卡赢金币_FQCTYYB_fail')
        }
        return fialflag
    })

}

// start_收集金币_FQCTYYB()
function start_收集金币_FQCTYYB(isForce) {
    if ((isBetweenTime(0, 6) && isEnableSwitch('ctyyb_yjbzx') && !isForce)) {
        log('夜间不执行')
        return
    }
    if (!HANGUP_APPNAMES.find(item => item == '畅听音乐') && !isForce) {
        log('音乐养号不刷金')
        return
    }
    if (isEnableSwitch('ctyy_sxcs') && getExcuteFuncTimes('start_收集金币_FQCTYYB') > 100 && !isForce) {
        log('音乐上限次数100')
        return
    }

    log('开始畅听音乐收集金币')
    currentAppPackName = PACK_NAME_FQCTYYB
    // closeApp(PACK_NAME_FQCTYYB)

    if (!start_app_FQCTYYB()) {
        return
    }

    enter_任务中心_FQCTYYB()


    startThredTaskMaxTime超时结束(() => {
        open_签到_FQCTYYB()

        open_开宝箱_FQCTYYB()

        watch_看广告_FQCTYYB()

        open_金币红包雨_FQCTYYB()

        open_翻卡赢金币_FQCTYYB()

        // open_听音乐额外存金币_FQCTYYB()

        if (hasExcuteFunc('skip_看视频_ctyy')
            || hasExcuteFunc('open_开宝箱_FQCTYYB')
            || !isRunAppTask('task_ctyy', '开宝箱')
            || isBetweenTime(16, 24)
            || hasExcuteFunc('again_再次看视频_ctyy')) {


            // open_时长赚金币_FQCTYYB()

            watch_收益日报_FQCTYYB()

            watch_连续听歌赚钱_FQCTYYB()

            watch_每日听歌赚钱_FQCTYYB()

            open_睡觉赚金币_FQCTYYB()
        }
    }, 40 * 59)

    skip_任务中心的弹窗_FQCTYYB()

    move2Top(3, 300, '自动兑换', '现金收益', '金币收益')

    //获取金币收益
    if (isBetweenTime(2, 24)) {
        var totalGet = getMaxNumByNearByOffecXY(ocrWaitForText('金币收益'), 100, 0, screen.percentToWidth(0.5), 150)
        log('今日收益:' + totalGet)
        setConfig('ctyy_total', totalGet)
        if (getExcuteFuncTimes('start_收集金币_FQCTYYB') > 10) {
            if (totalGet > CTYY_MAX_JB && totalGet < 1000000) {
                log('畅听音乐上限不再继续任务')
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 24 * 60 * 60)
                //   setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCTYYB', 0)
            }
        }

        check_是否金币上限_FQCTYY()
    }


    stopAllApp()

    addExcuteFuncTimes('start_收集金币_FQCTYYB')
    log('畅听音乐收集金币结束')
}

